package com.example.thread.pool;

/**
 * 创建固定线程池
 * 核心线程数和最大线程数是一致的，所以可以把它看作为一个固定大小的线程池
 * 线程池中的线程数除了   初始阶段需要从 0 开始增加外   ，之后的线程数量就是固定的，就算任务数超过线程数，线程池也不会再创建更多的线程来处理任务，
 * 而是会把超出线程处理能力的任务放到任务队列中进行等待。而且就算任务队列满了，到了本该继续增加线程数的时候，由于它的最大线程数和核心线程数是一样的，
 * 所以也无法再增加新的线程了
 */
public class FixedThreadPool {
    public static void main(String[] args) {
        //创建固定线程池
        java.util.concurrent.ExecutorService executorService = java.util.concurrent.Executors.newFixedThreadPool(5);
        for (int i = 0; i < 10; i++) {
            executorService.execute(() -> {
                System.out.println(Thread.currentThread().getName() + "正在处理任务");
            });
        }
        executorService.shutdown();
    }
}
